package com.molichuxing.gateway.bff.user.entity.response;

import com.molichuxing.framework.dto.ResponseRootDto;
import com.molichuxing.services.property.BlacklistTypeEnum;
import com.molichuxing.services.property.UserSourceEnum;
import com.molichuxing.services.property.VerifyResultEnum;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 
 * @author liyg
 * 用户vo
 * 2019-08-06
 * 
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class UserVo extends ResponseRootDto{


    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	
	@ApiModelProperty(value = " 用户ID")
    private Integer userId;

	@ApiModelProperty(value = " 用户账号(默认用手机号，只能修改一次)")
    private String name;

	@ApiModelProperty(value = " 真实姓名")
    private String realName;

	@ApiModelProperty(value = " 手机号")
    private String phone;

	@ApiModelProperty(value = " 邮箱")
    private String email;
  
	@ApiModelProperty(value = " 用户来源（1：IOS  2: android 3：微信 4：智能终端）")
    private Integer source;
    
	@ApiModelProperty(value = " 用户来源Str")
    private String sourceStr;

	@ApiModelProperty(value = " 注册时间")
    private String regtime;

	@ApiModelProperty(value = " 通讯地址")
    private String address;

	@ApiModelProperty(value = " 是否拉黑 true：已拉黑  fales：未拉黑")
    private Boolean isBlack;

	@ApiModelProperty(value = " 是否注销 true：已注销  fales：正常")
    private Boolean isCancel;

	@ApiModelProperty(value = " 是否已修改账号 true：是  fales：否")
    private Boolean isRename;

	@ApiModelProperty(value = " 身份证号")
    private String idNumber;
    
	@ApiModelProperty(value = " 区Id")
    private Integer regionId;
    
	@ApiModelProperty(value = " 省市区名称")
    private String regionName;
    
	@ApiModelProperty(value = " 驾驶证号")
    private String licenseCode;

	@ApiModelProperty(value = " 准驾车型")
    private String model;
	
	@ApiModelProperty(value = " 手机号验证时间")
    private String verifyTime;

    @ApiModelProperty(value = " 手机号结果(0:未通过验证，1:通过验证)")
    private Integer verifyResult;
    
    @ApiModelProperty(value = " 手机号结果Str")
    private String verifyResultStr;
    
    @ApiModelProperty(value = " 拉黑原因")
    private String reason;

    @ApiModelProperty(value = " 拉黑方式(1:自动，2：手动)")
    private Integer type;

    @ApiModelProperty(value = " 拉黑方式Str")
    private String typeStr;
    
    public void setSource(Integer source) {
    	this.source=source;
    	this.sourceStr= source==null ? null : UserSourceEnum.getName(source);
    }
    
    public void setType(Integer type) {
    	this.type=type;
    	this.typeStr= type==null ? null : BlacklistTypeEnum.getName(type);
    }
    
    public void setVerifyResult(Integer verifyResult) {
    	this.verifyResult=verifyResult;
    	this.verifyResultStr= verifyResult == null ? null : VerifyResultEnum.getName(verifyResult);
    }

}
